using ZR.Model.BaseFrame.Dto;
using ZR.Model.BaseFrame.Entity;
using ZR.Model.BaseFrame;

namespace ZR.Service.BaseFrame.IService
{
    /// <summary>
    /// 部门服务接口
    /// </summary>
    public interface IDepartServiceBase : IBaseService<DepartEntity>
    {

            /// <summary>
            /// 添加部门
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            Task<bool> AddDepart(DepartEntity model);

            /// <summary>
            /// 删除部门
            /// </summary>
            /// <param name="ids"></param>
            /// <param name="isRealDel"></param>
            /// <returns></returns>
            Task<bool> DeleteDepart(long[] ids, bool isRealDel = true);

            /// <summary>
            /// 修改部门
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            Task<bool> ModifyDepart(DepartEntity model);

            /// <summary>
            /// 变更部门状态
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            Task<bool> ChangeDepartState(ChangeDepartStateReq req);


            /// <summary>
            /// 获取部门树选择列表
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            Task<List<TreeNodeInfo>> GetDepartTreeSelectList(GetDepartTreeSelectListReq req);

            /// <summary>
            /// 获取部门分页列表
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            Task<PagedInfo<DepartListItemDto>> GetDepartPageList(GetDepartPageListReq req);

        

            /// <summary>
            /// 获取部门详情
            /// </summary>
            /// <param name="id"></param>
            /// <returns></returns>
            Task<DepartDetailDto> GetDepartDetail(long id);

    

    }
}
